package com.probiz.estore.system.service.impl;

import java.util.List;

import com.probiz.estore.common.model.system.MsgTemplate;
import com.probiz.estore.core.service.impl.GenericManagerImpl;
import com.probiz.estore.system.service.MsgTemplateManager;
import com.probiz.estore.system.dao.MsgTemplateDao;


/**
 * Manager implementation for MsgTemplate, responsible for business processing, and communicate between web and persistence layer.
 */
public class MsgTemplateManagerImpl extends GenericManagerImpl<MsgTemplate> implements MsgTemplateManager {

	private MsgTemplateDao msgTemplateDao = null;
	/**
	 * @param msgTemplateDao
	 *            the msgTemplateDao to set
	 */
	public void setMsgTemplateDao(MsgTemplateDao msgTemplateDao) {
		this.msgTemplateDao = msgTemplateDao;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.probiz.estore.core.service.impl.GenericManagerImpl#init()
	 */
	@Override
	protected void initManager() {
		dao = msgTemplateDao;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.probiz.estore.core.service.impl.GenericManagerImpl#preDelete(java.lang.Object)
	 */
	@Override
	protected void preDelete(MsgTemplate entity) {

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.probiz.estore.core.service.impl.GenericManagerImpl#preSave(java.lang.Object)
	 */
	@Override
	protected void preSave(MsgTemplate entity) {

	}

	/* (non-Javadoc)
	 * @see com.probiz.estore.system.service.MsgTemplateManager#updateBatchEnableMsgTemplates(java.util.List)
	 */
	public void updateBatchEnableMsgTemplates(List<MsgTemplate> msgTemplateList) {
		for(MsgTemplate msgTemplate: msgTemplateList){
			this.save(msgTemplate);
		}
	}

	/* (non-Javadoc)
	 * @see com.probiz.estore.system.service.MsgTemplateManager#getByTemplateItem(java.lang.Integer, java.lang.Integer, java.lang.Short)
	 */
	public MsgTemplate getByTemplateItem(Integer storeId, Integer templateItem, Short type) {
		return msgTemplateDao.getByTemplate(storeId, templateItem, type).get(0);
	}


	/* (non-Javadoc)
	 * @see com.probiz.estore.system.service.MsgTemplateManager#getByTemplate(java.lang.Integer, java.lang.String)
	 */
	public MsgTemplate getByTemplate(Integer storeId, String templateCode) {
		return msgTemplateDao.getByTemplate(storeId, templateCode);
	}

	/* (non-Javadoc)
	 * @see com.probiz.estore.system.service.MsgTemplateManager#getDefaultTemplate(java.lang.String)
	 */
	public MsgTemplate getDefaultTemplate(String templateCode) {
		return msgTemplateDao.getDefaultTemplate(templateCode);
	}

	/* (non-Javadoc)
	 * @see com.probiz.estore.system.service.MsgTemplateManager#getGroupByTemplate(java.lang.Integer)
	 */
	public List<MsgTemplate> getGroupByTemplate(Integer storeId, Integer isStoreAdmin) {
		return msgTemplateDao.getGroupByTemplate(storeId, isStoreAdmin);
	}
	/*
	 * (non-Javadoc)
	 * @see com.probiz.estore.system.service.MsgTemplateManager#getDefaultMsgTemplateList(java.lang.Integer)
	 */
	public List<MsgTemplate> getDefaultMsgTemplateList(Integer templateItem){
		return msgTemplateDao.getDefaultMsgTemplateList(templateItem);
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.probiz.estore.system.service.MsgTemplateManager#getMsgTemplateList(java.lang.Integer, java.lang.Integer)
	 */
	public List<MsgTemplate> getMsgTemplateList(Integer storeId,Integer templateItem){
		return msgTemplateDao.getMsgTemplateList(storeId,templateItem);
	}

}
